package department.controller;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import department.domain.Department;
import department.service.DepartmentService;

public class DepartmentListServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		1. 요청파라미터 조회(X)
//		2. 업무로직 처리 - 전체 부서 정보를 조회 : service.selectDepartmentList() : ArrayList
		DepartmentService service = DepartmentService.getInstance();
//		온갖 필요한 기능을 구현해논 service클래스의 객체를 소환 
		String url = null;
//		여기서 필요한 서비스를 구현해서 다시 값을 받아서 넘길거니까 
		try{
			ArrayList<Department> list = service.getDepartmentList();
//			서비스에서 받아온 부서 정보를 어레이 리스트에 받아서 
			request.setAttribute("list", list);
//			그 어레이리스트 객체를 리퀘스트 스콥에 셋어트리뷰트를 한다. 
			url = "/department_list.jsp";
			//에러가 발생하지 않았을때 넘어갈 화면의 주소 
		}catch (SQLException e){
			e.printStackTrace();
			request.setAttribute("error_message", e.getMessage());
			url = "/error.jsp";
			//에러가 발생했을때 넘어갈 화면의 주소 
		}
		RequestDispatcher rdp = request.getRequestDispatcher(url);
		rdp.forward(request, response);
		
	}

}
